// Created: Dec 11, 2014
//
// Author: wjinwen.1988@gmail.com

#ifndef CHI_FUNC_H
#define CHI_FUNC_H

#include <sys/vfs.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/syscall.h>
#include <sys/time.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <unistd.h>
#include <netdb.h>
#include <inttypes.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <string>

namespace chi {
class Func {
 public:
  static int CheckPid(const char* lock_file);
  static void WritePid(const char* lock_file);
  
  static int StartDaemon(const char *pid_file);

#ifdef _syscall0
  static _syscall0(pid_t, gettid);
#else
  static pid_t gettid() {
    return syscall(__NR_gettid);
  }
#endif 
};

}  // namespace chi

#endif 
